/************************************************************************/
/*    Author: Scott Bevin                                               */
/************************************************************************/


#pragma once

#include <cegui\CEGUI.h>

#include "CEGuiDebuggerTool.h"



namespace XF
{

#define XF_CEGUIDEBUGMESSAGELOGGER_HISTORY_COUNT 100

	class CEGuiDebugMessageLogger :
		public CEGuiDebuggerTool
	{
	protected:
		CEGUI::FrameWindow* mDebugWindow;
		CEGUI::Listbox* mDebugListBox; 

		CEGUI::ListboxItem *mListboxItems[XF_CEGUIDEBUGMESSAGELOGGER_HISTORY_COUNT];

		void OnMessageLog(std::string message);

		void OnInitialize();
		void OnShutDown();

	public:
		CEGuiDebugMessageLogger();
		~CEGuiDebugMessageLogger();

		void Show(){mDebugWindow->setVisible(true); mDebugWindow->moveToFront();}
		void Hide(){mDebugWindow->setVisible(false);}
		bool IsVisible(){return mDebugWindow->isVisible();}
	};
}
